Repository navigation
Conversation
Seatbelt-Operation: 0e9ad28d-53d1-4aa9-baac-7c8c97723582
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
Seatbelt-Operation: 9c3ccfa2-8f76-4f56-9b19-48906f453380
Seatbelt-Operation: main-20261031-104920s-104927-sign-632c4f6a-7313-4b8a-9f85-9b67556cd2a0
KJ21-ENG
marked this pull request as ready for review
November 2, 2026 11:23
melvin-bot
Bot
requested review from
heyjennahay and
situchan
and removed request for
a team
November 2, 2026 11:24
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation of Change
Remove unsafe type assertions from chart filters, address defaults, country localization, and invoice company-size forwarding. Preserve exact-merchant filters, inclusive date bounds, address-field retention and validation, localization fallbacks, and current and legacy company-size values. Chart drill-down takes its filter from the chart's grouping, as on
main. In a time chart, a row from another grouping adds no filter instead of throwing.Changed files:
src/components/AddressForm.tsxsrc/components/CountrySelector.tsxsrc/components/Search/SearchChartView.tsxsrc/components/Search/chartGroupByConfig.tssrc/languages/IntlStore.tssrc/libs/CountryUtils.tssrc/libs/Localize/index.tssrc/libs/actions/IOU/PayMoneyRequest.tssrc/pages/AddressPage.tsxsrc/pages/settings/Profile/PersonalDetails/PersonalAddressPage.tsxsrc/types/onyx/IntroSelected.tstests/actions/IOUTest/PayMoneyRequestTest.tstests/ui/AddressPageTest.tsxtests/ui/WorkspaceTravelAddressCountryTest.tsxtests/unit/CountryUtils.test.tstests/unit/Search/chartGroupByConfigTest.tsFixed Issues
$ #94739
PROPOSAL: #94739 (comment)
Tests
Use the candidate App against its supported test backend, signed in with a non-delegate account. Run each case on Android native, Android mWeb Chrome, iOS native, iOS mWeb Safari, macOS Chrome, and macOS Safari; use the repository's Mobile-Expensify setup for native builds. Create data through the normal App UI and check for unexpected JavaScript console errors throughout.
Country label follows the language
Setup: Save English on the Language screen in Settings > Preferences > Language. Open the signed-in App link
/settings/profile/addressand save 123 Main St, Suite 4, New York, United States, state New York (NY), ZIP 10001./settings/profile/address. Country reads United States./settings/profile/address. Country reads Estados Unidos de América and address labels are Spanish.Personal address validation and retained fields
Setup: Save English on the Language screen and retain the US address saved in the preceding case.
/settings/profile/address. Both street lines, New York city/state, United States and 10001 appear./settings/profile/address. Canada, Ontario, New York, M5V 2T6 and both original street lines appear.Chart setup: create ordinary cash expenses through Create expense > Manual with different amounts: merchant
Ion 2023-12-31, merchantI shopon 2024-01-06, and merchantI shopon 2024-01-07. Open Expenses/Search with a date range containing all three and a supported additional filter that includes them. Restore this original result before each Bar or Line variation because drill-down removes the grouping and chart view.Merchant bar selects the exact merchant
Setup: Restore the original Expenses/Search result described above before configuring this chart.
Week line uses inclusive date bounds
Setup: Restore the original Expenses/Search result described above before configuring this chart.
Focused lint, formatting, TypeScript, React Compiler checks, and nine Jest suites (231 tests) passed on this merged head. CI passed typecheck, lint, formatting, React Compiler checks, and the selected Jest suites.
The checked-in tests cover chart dispatch and comparison-series data, country/localization fallbacks, address values including the Travel consumer, and invoice company-size forwarding. To repeat the selected suites with the normal repository test command:
npm test -- --runInBand --runTestsByPath \ tests/unit/Search/chartGroupByConfigTest.ts \ tests/unit/buildChartSeriesTest.ts \ tests/unit/buildInsightsChartCSVTest.ts \ tests/unit/getInProgressBucketLabelTest.ts \ tests/unit/CountryUtils.test.ts \ tests/ui/AddressPageTest.tsx \ tests/ui/WorkspaceTravelAddressCountryTest.tsx \ tests/actions/IOUTest/PayMoneyRequestTest.ts \ tests/unit/OnboardingFlowTest.tsOffline tests
N/A. Address writes, synchronization, recovery, chart fetching, and the existing localization cache behavior are unchanged, so this refactor introduces no distinct offline case.
QA Steps
Same as tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Screenshots/Videos (10)
Personal address desktop
104927-c01d.mp4
Personal address phone-sized
104927-c01m.mp4
Country label desktop
104927-c02d.mp4
Country label phone-sized
104927-c02m.mp4
Merchant bar desktop
104927-c03d.mp4
Merchant bar phone-sized
104927-c03m.mp4
Merchant pie desktop (extra evidence, no matching case)
104927-c04d.mp4
Merchant pie phone-sized (extra evidence, no matching case)
104927-c04m.mp4
Week line desktop
104927-c05d.mp4
Week line phone-sized
104927-c05m.mp4